package com.xbh.zzzTest;

import com.xbh.common.model.Student;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @CodeStyleTest:
 * @author: ZBoHang
 * @time: 2021/8/4 11:26
 */
public class CodeStyleTest {


    private static String str = "*** ***";
    // 集合类型的静态成员变量，应该使用静态代码块赋值，而不是使用集合实现来赋值。
    private static List<String> list = new ArrayList<>();
    static {
        list.add("123");
    }

    //工具类 手动私有其构造方法
    private CodeStyleTest(){

    }


    public static void main(String[] args) {

        //1. 少用、尽可能不用where 1 = 1  可能会导致数据库 无法使用索引等查询优化策略

        //2. map遍历 (集合初始化尽可能指定其 容量)
        Map<String, String> map = new HashMap<>(3);

        map.keySet(); //更适用于只需要K
        map.entrySet(); //更适用于同时需要K、V

        //4. 集合 <? extend Collection> 判空
        map.isEmpty();// 在一些情形下时间复杂度更优于 size() > 0

        //5. 在循环中字符串拼接Java 不会对其进行优化
        StringBuilder str = new StringBuilder("*");
        str.append(" <-- ");

        //6. 若需频繁调用Collection.contains 方法则使用Set

        //7. 字符串转化使用String.valueOf(value) 代替 " " + value

        //8. 避免使用BigDecimal(double)

        //9. 返回空数组和集合而非 null
            //return new Result[0];
            //return Collections.emptyList();
            //return Collections.emptyMap();

        //10. 优先使用常量或确定值调用equals 方法

        //11. 枚举的属性字段必须是私有且不可变 private final

        //12. split(String regex)部分关键字需要转译 "\\."

        //13. 用catch 语句捕获异常后，若什么也不进行处理，就只是让异常重新抛出，
            // 跟不捕获异常的效果一样，可以删除这块代码或添加别的处理
    }
}
